Fast Algorithms for Compressed Multi-Method Dispatch Tables Generation
نویسندگان
چکیده
The eeciency of dynamic dispatch is a major impediment to the adoption of multi-methods in object-oriented languages. In this paper, we propose a simple multi-method dispatch scheme based on compressed dispatch tables. This scheme is applicable to any object-oriented language using a method precedence order that satisses a speciic monotonous property (e.g., as Cecil and Dylan), and guarantees that dynamic dispatch is performed in constant time, a major requirement for some languages and applications. We provide eecient algorithms to build the dispatch tables, provide their worst-case complexity, and demonstrate the eeectiveness of our scheme by real measurements performed on two large object-oriented applications. Finally, we provide a detailed comparison of our technique with other existing techniques. 1. INTRODUCTION In traditional object-oriented systems such as Smalltalk Goldberg and Robson 1983] and C++ Ellis and Stroustrup 1992], functions have a specially designated target argument, sometimes called receiver, whose type, determined either at run-time or at compile-time, serves to select the method to execute in response to a function invocation. Multiple dispatching, rst introduced in CommonLoops Bo-brow et al. 1986] and CLOS Bobrow et al. 1988], generalizes this form of dynamic binding by selecting a method depending on the run-time type of a subset of the arguments of a function invocation. Methods in this generalized scheme are called
منابع مشابه
Multi - Method Dispatch Using Multiple
Multiple Row Displacement (MRD) is a new dispatch technique for multi-method languages. It is based on compressing an n-dimensional table using an extension of the single-receiver row displacement mechanism. This paper presents the new algorithm and provides experimental results that compare it with implementations of existing techniques: compressed n-dimensional tables, look-up automata and si...
متن کاملDay-ahead economic dispatch of coupled desalinated water and power grids with participation of compressed air energy storages
Nowadays, water and electricity are closely interdependent essential sources in human life that affect socio-economic growth and prosperity. In other words, electricity is a fundamental source to supply a seawater desalination process, while fresh water is used for cooling this power plant. Therefore, mutual vulnerability of water treatment and power generation systems is growing because of inc...
متن کاملMulti-method Dispatch Using Multiple Row Displacement
Multiple Row Displacement (MRD) is a new dispatch technique for multi-method languages. It is based on compressing an n-dimensional table using an extension of the single-receiver row displacement mechanism. This paper presents the new algorithm and provides experimental results that compare it with implementations of existing techniques: compressed n-dimensional tables, look-up automata and si...
متن کاملSolving the Economic Load Dispatch Problem Considering Units with Different Fuels Using Evolutionary Algorithms
Nowadays, economic load dispatch between generation units with least cost involved is one of the most important issues in utilizing power systems. In this paper, a new method i.e. Water Cycle Algorithm (WCA) which is similar to other intelligent algorithm and is based on swarm, is employed in order to solve the economic load dispatch problem between power plants. In order to investigate the eff...
متن کاملPer Unit Coding for Combined Economic Emission Load Dispatch using Smart Algorithms
This paper proposes per unit coding for combined economic emission load dispatch problem. In the proposed coding, it is possible to apply the percent effects of elements in any number and with high accuracy in objective function. In the proposed per unit coding, each function is transformed into per unit form based on its own maximum value and has a value from 0 to 1. In this paper, particle sw...
متن کامل